// src/utils/errorHandling.ts
import { Alert } from 'react-native';
import analyticsService from '../services/analyticsService';

export function setupErrorHandling() {
  // 设置全局错误处理
  ErrorUtils.setGlobalHandler((error: Error, isFatal?: boolean) => {
    console.error('[Global Error]', error, 'Fatal:', isFatal);

    // 记录错误
    analyticsService.trackError(error, isFatal);

    if (isFatal) {
      Alert.alert(
        '应用错误',
        '应用遇到了一个错误，需要重启。',
        [
          {
            text: '重启',
            onPress: () => {
              // 重启应用逻辑
            },
          },
        ],
        { cancelable: false }
      );
    }
  });

  // Promise rejection 处理
  const originalRejectionHandler = global.onunhandledrejection;
  global.onunhandledrejection = (event: any) => {
    console.error('[Unhandled Rejection]', event.reason);
    analyticsService.trackError(new Error(event.reason), false);

    if (originalRejectionHandler) {
      originalRejectionHandler(event);
    }
  };
}